package com.dragon.modules.yuegou.model.system;

import com.dragon.modules.yuegou.entity.system.ApplicationEntity;
import com.dragon.modules.yuegou.enums.system.ApplicationType;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 前端应用管理模型类
 * 
 * @author pbuilder generated
 * @date 2019-05-07 11:01:06
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class Application extends ApplicationEntity {

	/**
	 * 构造一个空前端应用管理模型对象
	 */
	public Application(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个前端应用管理模型对象
	 * 
	 * @param entity 实体对象
	 */
	public Application(ApplicationEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个前端应用管理模型对象
	 * 
	 * @param other 其它对象
	 */
	public Application(Application other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置
	 * 
	 * @param id 
	 * @return 当前对象
	 */
    public Application id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getName() {
    	return name;
    }

    /**
	 * 设置应用名称
	 * 
	 * @param name 应用名称
	 * @return 当前对象
	 */
    public Application name(String name) {
    	this.name = name;
    	return this;
    }

	@Override
	public String getAccount() {
    	return account;
    }

    /**
	 * 设置账号 小程序需要填写
	 * 
	 * @param account 账号 小程序需要填写
	 * @return 当前对象
	 */
    public Application account(String account) {
    	this.account = account;
    	return this;
    }

	@Override
	public String getPassword() {
    	return password;
    }

    /**
	 * 设置密码 小程序需要填写
	 * 
	 * @param password 密码 小程序需要填写
	 * @return 当前对象
	 */
    public Application password(String password) {
    	this.password = password;
    	return this;
    }

	@Override
	public ApplicationType getType() {
    	return type;
    }

    /**
	 * 设置[枚举]应用类型：0-悦购-YGIRL、1-悦荷包-WALLET、2-悦商管-YSQ、3-悦商惠-YSH、4-员工版-YGB、5-安卓-ANDROID、6-苹果-IOS、7-大运营版-PLATFORM、8-集团版-GROUP、9-支付宝小程序-ALIXCX
	 * 
	 * @param type [枚举]应用类型：0-悦购-YGIRL、1-悦荷包-WALLET、2-悦商管-YSQ、3-悦商惠-YSH、4-员工版-YGB、5-安卓-ANDROID、6-苹果-IOS、7-大运营版-PLATFORM、8-集团版-GROUP、9-支付宝小程序-ALIXCX
	 * @return 当前对象
	 */
    public Application type(ApplicationType type) {
    	this.type = type;
    	return this;
    }

	@Override
	public String getAppid() {
    	return appid;
    }

    /**
	 * 设置微信开放平台appid 小程序用自己的
	 * 
	 * @param appid 微信开放平台appid 小程序用自己的
	 * @return 当前对象
	 */
    public Application appid(String appid) {
    	this.appid = appid;
    	return this;
    }

	@Override
	public String getOriginalid() {
    	return originalid;
    }

    /**
	 * 设置原始ID
	 * 
	 * @param originalid 原始ID
	 * @return 当前对象
	 */
    public Application originalid(String originalid) {
    	this.originalid = originalid;
    	return this;
    }

	@Override
	public String getAppsecret() {
    	return appsecret;
    }

    /**
	 * 设置秘钥 小程序填写
	 * 
	 * @param appsecret 秘钥 小程序填写
	 * @return 当前对象
	 */
    public Application appsecret(String appsecret) {
    	this.appsecret = appsecret;
    	return this;
    }

	@Override
	public String getPublicKey() {
    	return publicKey;
    }

    /**
	 * 设置公钥
	 * 
	 * @param publicKey 公钥
	 * @return 当前对象
	 */
    public Application publicKey(String publicKey) {
    	this.publicKey = publicKey;
    	return this;
    }

	@Override
	public String getPrivateKey() {
    	return privateKey;
    }

    /**
	 * 设置私钥
	 * 
	 * @param privateKey 私钥
	 * @return 当前对象
	 */
    public Application privateKey(String privateKey) {
    	this.privateKey = privateKey;
    	return this;
    }

	@Override
	public String getDecryptKey() {
    	return decryptKey;
    }

    /**
	 * 设置验签
	 * 
	 * @param decryptKey 验签
	 * @return 当前对象
	 */
    public Application decryptKey(String decryptKey) {
    	this.decryptKey = decryptKey;
    	return this;
    }

	@Override
	public String getSignveriKey() {
    	return signveriKey;
    }

    /**
	 * 设置签名
	 * 
	 * @param signveriKey 签名
	 * @return 当前对象
	 */
    public Application signveriKey(String signveriKey) {
    	this.signveriKey = signveriKey;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置
	 * 
	 * @param createdTime 
	 * @return 当前对象
	 */
    public Application createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public String getCreatedBy() {
    	return createdBy;
    }

    /**
	 * 设置
	 * 
	 * @param createdBy 
	 * @return 当前对象
	 */
    public Application createdBy(String createdBy) {
    	this.createdBy = createdBy;
    	return this;
    }

	@Override
	public LocalDateTime getModifiedTime() {
    	return modifiedTime;
    }

    /**
	 * 设置
	 * 
	 * @param modifiedTime 
	 * @return 当前对象
	 */
    public Application modifiedTime(LocalDateTime modifiedTime) {
    	this.modifiedTime = modifiedTime;
    	return this;
    }

	@Override
	public String getModifiedBy() {
    	return modifiedBy;
    }

    /**
	 * 设置
	 * 
	 * @param modifiedBy 
	 * @return 当前对象
	 */
    public Application modifiedBy(String modifiedBy) {
    	this.modifiedBy = modifiedBy;
    	return this;
    }

	@Override
	public String getMiniQrcodeUrl() {
    	return miniQrcodeUrl;
    }

    /**
	 * 设置小程序小程序码
	 * 
	 * @param miniQrcodeUrl 小程序小程序码
	 * @return 当前对象
	 */
    public Application miniQrcodeUrl(String miniQrcodeUrl) {
    	this.miniQrcodeUrl = miniQrcodeUrl;
    	return this;
    }
}
